package com.h3c.ptability.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.h3c.ptability.dto.PtAllWorkerDTO;
import com.h3c.ptability.dto.PtAllWorkerViewDTO;
import com.h3c.ptability.entity.PtAllWorker;
import com.h3c.ptability.support.PageQuery;
import com.h3c.ptability.vo.PtAllWorkerVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * Copyright (C), 2020-2020, h3c
 * FileName: IPtAllWorkerService
 *
 * @Author: l22886
 * @Date: 2022-03-14
 * Description: pt_all_worker service
 * Version: 1.0
 */
public interface IPtAllWorkerService extends IService<PtAllWorker> {

    /**
     * @title: selectFuzzyByDto
     * @description: 模糊查询操作
     * @params: [ dto ]
     * @return: java.util.List
     * @createTime: 2022-03-14
     * @version: 1.0
     * @author: l22886
     */
    public List<PtAllWorkerViewDTO> selectFuzzyByDto(PtAllWorkerDTO dto);

    /**
     * @title: selectByDto
     * @description: 精确查询操作
     * @params: [ dto ]
     * @return: java.util.List
     * @createTime: 2022-03-14
     * @version: 1.0
     * @author: l22886
     */
    public List<PtAllWorkerDTO> selectByDto(PtAllWorkerDTO dto);

    /**
     * @title: insertDto
     * @description: 插入操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-03-14
     * @version: 1.0
     * @author: l22886
     */
    public Integer insertDto(PtAllWorkerDTO dto);

    /**
     * @title: updateDto
     * @description: 修改操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-03-14
     * @version: 1.0
     * @author: l22886
     */
    public Integer updateDto(PtAllWorkerDTO dto);

    /**
     * @title: deleteDto
     * @description: 删除操作
     * @params: [ dto ]
     * @return: Integer
     * @createTime: 2022-03-14
     * @version: 1.0
     * @author: l22886
     */
    public Integer deleteDto(PtAllWorkerDTO dto);

    List<PtAllWorker> searchWorker(String keyword);

    public void syncWorker();

    public Integer addCooperativeWorker(PtAllWorkerDTO dto);

    public Integer importAllWorker(MultipartFile file);


    /**
     * 列表分页查询基础人员信息
     * @param pageQuery 入参
     * @param appId     租户id
     * @return 列表分页查询基础人员信息
     */
    IPage<PtAllWorkerVO> queryPage(PageQuery<PtAllWorkerDTO> pageQuery, String appId);


    List<PtAllWorker> queryWorkerInfoByDomain(List<String> workerIds);
}
